<?php

class produto extends controller {

    public function __construct($controller = '', $view = '') {
        $this->setSecure(true);
        parent::__construct($controller, $view);
    }

    public function index() {
        $database = new database();

        $result = $database->select('p.nomeProduto, p.idProduto, m.nomeMarca, p.dataCadastro')
                ->from('produto as p')
                ->join('marca as m', 'p.marca = m.idMarca')
                ->execute();
        return array('dados' => $result);
    }

    public function novo() {
        $database = new database();

        $resultMercado = $database->select()
                ->from('mercado')
                ->execute();

        $resultMarca = $database->select()
                ->from('marca')
                ->execute();

        return array(
            'dadosMercado' => $resultMercado,
            'dadosMarca' => $resultMarca
        );
    }

    public function editar() {
        
    }

    public function deletar() {
        
    }

    public function cadastrar() {
        $database = new database();

        $register = array();

        if (isset($_POST['nome'])) {
            $register['nomeProduto'] = trim($_POST['nome']);
        }

        if (isset($_POST['marca'])) {
            $register['marca'] = trim($_POST['marca']);
        }

        if (isset($_FILES['foto'])) {
            $register['imagemProduto'] = imgPath . 'upload/' . $_FILES['foto']['name'];
            $foto = $_FILES['foto'];
        }

        //Validação da Imagem
        // Se a foto estiver sido selecionada 
        if (!empty($register['imagemProduto'])) {
            // Largura máxima em pixels 
            $largura = 1000;
            // Altura máxima em pixels 
            $altura = 1000;
            // Tamanho máximo do arquivo em bytes 
            $tamanho = 2500000;

             //Verifica se o arquivo é uma imagem 
            if(!preg_match("/^image\/(pjpeg|jpeg|png|gif|bmp)$/", $foto["type"])){
                $this->redirect('/produto/novo/?error=imagemInvalida');
            }
            
            
            
            // Pega as dimensões da imagem 
            $dimensoes = getimagesize($foto["tmp_name"]);

            // Verifica se a largura da imagem é maior que a largura permitida 
            if ($dimensoes[0] > $largura) {
                $this->redirect('/produto/novo/?error=largura');
            }

            // Verifica se a altura da imagem é maior que a altura permitida 
            if ($dimensoes[1] > $altura) {
                $this->redirect('/produto/novo/?error=altura');
            }

            // Verifica se o tamanho da imagem é maior que o tamanho permitido 
            if ($foto["size"] > $tamanho) {
                $this->redirect('/produto/novo/?error=tamanho');
            }

            // Pega extensão da imagem 
            preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $foto['name'], $ext);
//            var_dump($ext[1]);exit;

            $nomeUnico = md5(date("H:i:s")) .'.'. $ext[1];
            
            // Caminho de onde ficará a imagem 
            $caminhoImagem = 'C:\\wamp\\www\\projetoFinal\\trunk\\source-code\\public\\img\\upload\\' . $nomeUnico;

            // Faz o upload da imagem para seu respectivo caminho 
            move_uploaded_file($foto['tmp_name'], $caminhoImagem);

            //Fim da Validação da Imagem
        }

        foreach ($register as $campo => $valor) {
            if (!$valor)
                $this->redirect('/produto/novo/?error=' . $campo);
        }
        $register['user'] = $this->getUser()->getData('iduser');
        $register['imagemProduto'] = imgPath . 'upload/' . $nomeUnico;

        $database->insert('produto', $register);

        $insere = $database->execute();
        //var_dump(mysql_error());exit;

        if ($insere) {
            $this->redirect('/produto/?msg=sucesso');
        } else {
            $this->redirect('/produto/novo/?error=erro');
        }
    }

}

?>
